package jobascjp;

class A {}
class B extends A { }
public class ComingThru {
    static String s = "-"; // - 
    public static void main(String[] args) {
        A[] aa = new A[2];
        B[] ba = new B[2];
        sifter(aa);
        sifter(ba);
        sifter(7);
        System.out.println(s);
    }
    static void sifter(A[]... a2)  { s += "1"; } 
    static void sifter(B[]... b1)  { s += "2"; } 
    static void sifter(B[] b1)      { s += "3"; } 
    static void sifter(Object o)    { s += "4"; } 
    
    /*
     * What is the result?
     * 
     * -124
     * -134
     * -424
     * -434 // korrekt
     * -444
     * Compilation fails.
     * 
     * Anmerkungen: 
     * TODO ausgiebig durchdebuggen, wie das mit den statischen Methoden läuft!
     */
}
